#ifndef GRAPHIC_H
#define GRAPHIC_H
#include <string>

/**
    @author kapitan_hak <pawelluczkie@gmail.com>
    @brief Główny namespace silnika shipEngine, zawiera wszystkie klasy, struktury i funkcje.
*/
namespace shipEngine
{
    struct sprite
    {
        int srcx, srcy;// x, y on source image
        int dstx, dsty;// x, y on screen
        int w, h;//width & height
        int r, g, b;//colorKey
    };

    class graphic
    {
        public:
            graphic() {}
            virtual void setResolution(int x, int y, bool windowed) = 0;
            virtual void drawImage(int id, int x, int y) = 0;
            virtual void drawSprite(int id, sprite& param) = 0;
            virtual int openImage(std::string name) = 0;
            virtual void destroyImage(int id) = 0;
            virtual void clearScreen() = 0;
            virtual void flip() = 0;
            virtual int getXres() = 0;
            virtual int getYres() = 0;
            virtual ~graphic() {}
        protected:
        private:
    };
}

#endif // GRAPHIC_H
